package com.zpark.oop.day03;

import java.util.Arrays;

/**
 * 面向对象三大特征：封装、继承、多态
 * 封装：将属性私有化，通过方法访问，行为公开化
 *  封装，简单的说就是该露的露，该藏的藏。我们在设计程序是要追求“高内聚，低耦合”，其中，高内聚指的是
 *  类的内部数据操作细节由自己完成，不允许外部干涉。低耦合指的是仅暴露少量的方法给外部调用（
 *  使用get/set方法）。
 * 封装（对数据的隐藏），通常来说，应禁止直接访问应该对象中数据的实际表示，而是应该通过操作接口来
 * 访问，这种称为信息隐藏。
 * 封装的意义：
 *		1、对外提供可调用的，稳定的功能。
 *		2、封装容易变化的，具体的细节，外界不可访问，这样封装的意义在于：
 *       		a. 降低代码出错的可能性，便于维护。
 *				b. 当内部的实现细节改变时，只要保证对外的功能定义不变，其他的模块就不会因此而
 *				受到牵连。
 *
 * 封装的核心：属性私有化，行为（方法）公开化
 */
public class Demo04 {
    public static void main(String[] args) {
        // 创建Student类对象
        Student dc = new Student();
        // 给对象的属性赋值
       /* dc.name = "老干妈";
        dc.age = -180;*/
        dc.setName("老干妈");
        dc.setAge(18);

        int arr[] = new int[]{1,2,3,4,5};
        Arrays.sort(arr);

        // 获取属性值
        System.out.println(dc.getAge());
        System.out.println(dc.getName());

        System.out.println(dc.toString());
    }
}
